package cn.lijia.itrip.service;

import cn.lijia.itrip.exception.ItripException;
import cn.lijia.itrip.model.ItripUser;

/**
 * @author 李嘉
 * @create 2018-08-29-12:07
 */
public interface TokenService {
    /**
     *
     * 构建Token
     * @param itripUser 用户对象
     * @param userAgent Http请求的客户端类型
     * @return
     */
    public String generateToken(ItripUser itripUser,String userAgent);

    /**
     * 保存Token
     * @param token
     * @param itripUser 用户对象
     */
    public  void  saveToken(String token,ItripUser itripUser);

    /**
     * 判断toke是否删除
     * @param token
     * @return
     */
    Boolean exists(String token);

    /**
     * 删除token
     * @param token 要删除的token
     * @return
     */
    Boolean del(String token);

    /**
     * 重置token
     * @param token
     * @param userAgent
     * @return
     */
    String retoken(String token, String userAgent) throws ItripException;

    /**
     * 验证token
     * @param token
     * @param userAgent
     * @return
     */
    Boolean validateToken(String token, String userAgent);
}
